import Vue from 'vue'
import { getWxConfig } from '@/api/public'
function wxConfig(config,url) {

  // 环境判断,默认本地
  var evnType = 0;

  // 操作逻辑
  return new Promise((success, fail) => {
    var isRun = false;
    if (Vue.prototype.$isWx && process.env.NODE_ENV == 'development') {
      evnType = 0;
      isRun = true;
    } else if (!Vue.prototype.$isWx && process.env.NODE_ENV == 'development') {
      evnType = 1;
      isRun = false;
      fail({ msg: '请在微信开发者工具中打开', env: evnType });
    } else if (!Vue.prototype.$isWx && process.env.NODE_ENV == 'production') {
      evnType = 2;
      isRun = false;
      fail({ msg: '请在微信开发者工具中打开', env: evnType });
    } else if (Vue.prototype.$isWx && process.env.NODE_ENV == 'production') {
      evnType = 3;
      isRun = true;
    }
    if (isRun) {
      // 如果回调的code没有拿到再回调一次，无限重复，直到拿到code，再准备环境
      if (config.code == null || config.code === "") {
        window.location.href = url
      } else {
        config.code = Vue.prototype.$func.getUrlParam("code")
      }
      getWxConfig({}).then(res=>{
        Vue.prototype.$wx.config({
          appId: config.appid,
          nonceStr: '',
          signature: '',
          timestamp: '',
          debug: process.env.NODE_ENV === 'development',// 开启调试模式
          jsApiList: []
        });
        Vue.prototype.$wx.ready(function () {
          var error = false;
          Vue.prototype.$wx.error(function(err){
            evnType = 4;
            fail({ msg: err.errMsg, env: evnType });
          })
          // success({ msg: '微信环境准备完成', env: evnType });
          error ? null : success({ msg: '微信环境准备完成', env: evnType });
        })
      }).catch(err=>{
        evnType = 4;
        fail({ msg: JSON.stringify(err), env: evnType });
      })
    }
  })
}
export default wxConfig;